class ObservedTarget {
	constructor() {
		this.observers = [] //用于存储所有的观察者
	}
	addObserver(...observer) {
		// console.log(...observer);
		this.observers.push(...observer) //添加观察者
	}
	notifyObserver(...args) {
		// 遍历观察者列表
		this.observers.forEach(item => {
			item.update(...args)
		})
	}
}
class Observer {
	constructor(name) {
		this.name = name
	}
	update(...args) {
		let content = [...args];
		console.log(`${this.name}接收到目标对象更新的状态是：${content}`);
	}
}
// 创建多个观察者
let observer1 = new Observer('observer1')
let observer2 = new Observer('observer2')
let observer3 = new Observer('observer3')

// 把观察者本身依附在目标对象上
let observerTarget = new ObservedTarget()
observerTarget.addObserver(observer1, observer2, observer3)

// 当目标对象更新内容时，通知所有的观察者
observerTarget.notifyObserver('这是我的新专辑！', '感谢粉丝对我的支持呀！')
